1. Field
The present disclosure relates to optical character recognition of printed, hand-printed, and hand-written characters.
2. Related Art
Optical Character Recognition (OCR) systems are widely used. In an OCR system, as most errors occur at a character recognition stage, accuracy of recognition of individual characters is a pivotal factor. In order to achieve greater OCR accuracy, the number of errors in recognizing individual characters must be minimized.
To achieve better recognition accuracy, several different classifiers are used. Each classifier has its own set of ratings and scales. In an OCR system, different classifiers can be of all characters and estimate how much an image is similar to known characters or if it is present. These classifiers may include a raster classifier, a feature classifier, a structure classifier, etc. In order to recognize a character image, a classifier compares the image with a set of patterns. Generally, each classifier has its own set of character patterns. A pattern is a template of some character for a classifier. A classifier compares an image of unknown character with the set of patterns dissimilar to one or another character. In fact, a classifier may have several patterns for a single character.
For instance, there may be several patterns for character “a” like “a” from a first font, “a” from a second font, etc. A classifier compares an image with the whole group of patterns for the character “a” but chooses the best coincidence (matching) one and further takes into account only the one weight which was obtained for this best variant. The same process is performed with pattern groups of all others characters. Then only the best weights of each of the pattern groups are compared with each other to find out which character is represented in the image. Therefore, when it is a matter of weight, a weight obtained by comparing an image with a pattern of some character, it is actually the best weight of the pattern group for that character.
Patterns are obtained by processing character images from a training image database. Such database contains real images of different characters, which were selected for training a classifier. An example of an image from such a database usually is referred to a learning sample or sample image. The training image database also may be used for different methods for improving the quality of recognition, including training, such as by combining different values and using a weighting scheme. The improvements may be made for a variety of classifiers. But in these cases, it is useful to employ another database, more specifically a database with images dissimilar to the ones on which the patterns were trained.
A raster classifier compares a character image with a pattern by superimposing an image of the character on an image of its pattern. A degree of discrepancy is expressed by a number of differing pixels. To achieve an acceptable degree of accuracy with a raster classifier, the image can be pre-processed. Specifically, a size, a slant and a stroke width of the image can be normalized. For example, all character images can be reduced to a same size such as a character that is 14×14 pixels. Patterns for each class of character are typically obtained by averaging the images of the corresponding character in a learning sample on which the raster classifier is trained. The raster classifier is easy to implement, works fast, and has a good tolerance for image defects. However, the accuracy of raster classifiers is relatively low. Another drawback of typical raster classifiers is its high sensitivity to changes in shape of characters.
A feature classifier operates on the following principles. The features of a source image are computed and the image is converted into an N-dimensional feature vector. A type and a number of features are the most important characteristics that determine quality of results obtained with the feature classifier. Next, the feature vector is compared with a set of pattern feature vectors. The comparison of each pair of feature vectors consists in computing a rating that describes a distance between points in an N-dimensional space, where a point is a geometrical representation of a feature vector. The major advantages of the feature classifier are the ease of implementation, good capability to make generalizations, good tolerance for changes in character shapes, low number of recognition failures, and high speed. A major disadvantage of the feature classifier is low tolerance of various image defects. Additionally, the features are computed independently, which results in loss of information about mutual positioning of the character elements. Feature classifier is a general name for a plurality of different classifiers, each using its own set of features.
A contour classifier is a kind of feature classifier. To extract character features, a contour classifier uses contours (boundaries) that have been identified in each character image. Its operational principles, advantages, and disadvantages are the same as those of a feature classifier.
A structure classifier uses man-made character structural models, against which an image being recognized is compared. A character in a structure classifier is described by a set of structural elements such as a line, an arc, a circle and a dot. Allowed mutual positioning of the elements is defined by means of geometric relations such as a line angle, a length, an intersection of lines, and the like. Variables used in relations are attributes (e.g., length restriction, range of angles, deviation from a direct line) and coordinates of characteristic character points, such as ends and extrema. A pattern specifies ranges of allowed values for the attributes of each structural element. In case of a line, for example, the range of possible angles and a maximum deviation from the straight line are specified. The relations are specified by means of fuzzy logical expressions. Structural character descriptions are characterized by a high degree of generalization and can achieve high recognition accuracy even for highly variable characters, which is particularly important in the case of hand-printed and hand-written characters.
Each classifier has its own set of ratings and features. This leads to a problem of combining the ratings obtained from the different classifiers. A further problem lies in obtaining a qualitative assessment of the recognizer. Specifically, the following problems may arise when combining classifiers: a) Different classifiers may have different quantitative scales. For example, a raster classifier may produce ratings on a scale from to 0 to 400 and a contour classifier may have a scale from 0 to 800. In this case, how would one compute an overall rating? b) Each classifier will recognize some characters better and some characters worse, which, in turn, may be successfully recognized by another classifier. How would these factors take into account when combining several classifiers? c) Disagreement among quantitative scales that were obtained for different characters from the same classifier. Specifically, in case of difficulty in distinguishing pairs of characters, for example, “t” and “f”, “e” and “c”, “z” and “2”, a 30% match with the pattern, especially for hand-written characters, is considered a fairly good result which allows the classifier to reliably recognize the character. On the other hand, for simple characters (“x”, “7”, “A”), 30% is very low and, most likely, means that the character has been recognized incorrectly. For simple characters, a 70-80% match is considered a good result. Another problem is that one extra pixel for character A may mean something completely different than one extra pixel for character B.